package model;

import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Column;
import javax.persistence.JoinColumn;

@Entity
@Table(name="Direccion")
public class Direccion {
	private int id_direccion;
	private String descripcion;
	private Parametro departamento;
	private Parametro provincia;
	private Parametro distrito;
	private Set<Persona> direccion;
	
	public Direccion(){
		
	}
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id_direccion")
	public int getId_direccion() {
		return id_direccion;
	}

	public void setId_direccion(int id_direccion) {
		this.id_direccion = id_direccion;
	}

	@Column(name = "descripcion", length = 50)
	public String getDescripcion() {
		return descripcion;
	}
	
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "departamento", nullable = false)
	public Parametro getDepartamento() {
		return departamento;
	}
	
	public void setDepartamento(Parametro departamento) {
		this.departamento = departamento;
	}
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "provincia", nullable = false)
	public Parametro getProvincia() {
		return provincia;
	}
	
	public void setProvincia(Parametro provincia) {
		this.provincia = provincia;
	}
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "distrito", nullable = false)
	public Parametro getDistrito() {
		return distrito;
	}
	
	public void setDistrito(Parametro distrito) {
		this.distrito = distrito;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "direccion")
	public Set<Persona> getDireccion() {
		return direccion;
	}

	public void setDireccion(Set<Persona> direccion) {
		this.direccion = direccion;
	}
}
